/**
 * 基层抽象方法
 */
abstract class BasicDao {
    /**
     * 获取表名
     */
    abstract getTableName(): string;

    /**
     * 获取所有列
     */
    abstract getColumns(): string[];

    /**
     * 查询操作
     */
    select = (where: any[]): any[] => {
        return [];
    }

    /**
     * 根据主键查
     * @param obj
     */
    selectByPrimaryKey = (obj: any): any => {
        return null;
    }

    /**
     * 更新操作
     */
    update = (columns: any[], where: any[]): number => {
        return 0;
    }

    /**
     * 删除操作
     */
    delete = (where: any[]): number => {
        return 0;
    }
}

export default BasicDao;